package com.battcn.platform.service.sys;

import com.battcn.framework.common.model.TreeNode;
import com.battcn.framework.mybatis.page.DataGrid;
import com.battcn.platform.pojo.dto.sys.PermissionDto;
import com.battcn.platform.pojo.po.sys.Menu;
import com.battcn.platform.pojo.po.sys.Office;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Optional;

/**
 * @author Levin
 * @version 2.5.1
 * @since 2018-01-10
 */
public interface OfficeService {

    /**
     * 分页查询 菜单列表
     *
     * @param grid 分页信息
     * @return 查询结果
     */
    PageInfo<Office> listOfficeForDataGrid(DataGrid grid);

    /**
     * 获取树形结构的部门数据
     *
     * @return 查询结果
     */
    List<TreeNode> listTree();


    /**
     * 查询所有部门
     *
     * @return 查询结果
     */
    List<Office> listOffice();

    /**
     * 根据部门编号判断 添加/保存 菜单信息
     *
     * @param office 部门
     */
    void saveOrUpdate(Office office);
    /**
     * 根据主键字段进行查询
     *
     * @param key 主键
     * @return 操作结果
     */
    Optional<Office> selectById(Object key);
    /**
     * 根据主键删除一个实体
     *
     * @param key 主键
     * @return 操作结果
     */
    boolean deleteById(Object key);
}
